package Negocio;

import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import DTO.DTO_DepositoCentral;
import DTO.DTO_Movimiento;
import DTO.DTO_Proveedor;
import DTO.DTO_StockInsumo;
import Entities.Entity_DepositoCentral;
import Entities.Entity_Movimiento;
import Entities.Entity_Proveedor;
import Entities.Entity_StockInsumo;

public class DepositoCentral extends Deposito{

	private List<Proveedor> proveedores;
	public DepositoCentral(String estado, int idDeposito, Date vencimiento,
			List<Movimiento> movimientos, List<StockInsumo> stockInsumo) {
		super(estado, idDeposito, vencimiento, movimientos, stockInsumo);
		// TODO Auto-generated constructor stub
	}
	public DepositoCentral(String estado, int idDeposito, Date vencimiento,
			List<Movimiento> movimientos, List<StockInsumo> stockInsumo, List<Proveedor> proveedores) {
		super(estado, idDeposito, vencimiento, movimientos, stockInsumo);
		this.proveedores=proveedores;
		// TODO Auto-generated constructor stub
	}
	public DepositoCentral(DTO_DepositoCentral depositoCentral)
	{
		super(depositoCentral);
		List<Proveedor>  provees = null;
		for(DTO_Proveedor prov: depositoCentral.getProveedores())
			provees.add(new Proveedor(prov));
		this.proveedores = provees;
	}
	
	public DepositoCentral(Entity_DepositoCentral depositoCentral)
	{
		super(depositoCentral);
		List<Proveedor>  provees = null;
		for(Entity_Proveedor prov: depositoCentral.getProveedores())
			provees.add(new Proveedor(prov));
		this.proveedores = provees;
	}
	
	public List<Proveedor> getProveedores() {
		return proveedores;
	}
	public void setProveedores(List<Proveedor> proveedores) {
		this.proveedores = proveedores;
	}
	
	public DTO_DepositoCentral toDTO(){
		DTO_DepositoCentral dc = new DTO_DepositoCentral();
		dc.setEstado(this.getEstado());
		dc.setIdDeposito(this.getIdDeposito());
		dc.setVencimiento(this.getVencimiento());
		List<DTO_Movimiento> mov = new ArrayList<DTO_Movimiento>();
		for(Movimiento t : this.getMovimientos()){
			mov.add(t.toDTO());
		}
		dc.setMovimientos(mov);
		List<DTO_Proveedor> prov = new ArrayList<DTO_Proveedor>();
		for(Proveedor p : this.getProveedores()){
			prov.add(p.toDTO());
		}
		dc.setProveedores(prov);
		List<DTO_StockInsumo> si = new ArrayList<DTO_StockInsumo>();
		for(StockInsumo s : this.getStockInsumo()){
			si.add(s.toDTO());
		}
		dc.setStockInsumo(si);
	
		return dc;
		
	}
	@Override
	public Entity_DepositoCentral toEntity() {
		Entity_DepositoCentral dc = new Entity_DepositoCentral();
		dc.setEstado(this.getEstado());
		dc.setIdDeposito(this.getIdDeposito());
		dc.setVencimiento(this.getVencimiento());
		List<Entity_Movimiento> mov = new ArrayList<Entity_Movimiento>();
		for(Movimiento t : this.getMovimientos()){
			mov.add(t.toEntity());
		}
		dc.setMovimientos(mov);
		List<Entity_Proveedor> prov = new ArrayList<Entity_Proveedor>();
		for(Proveedor p : this.getProveedores()){
			prov.add(p.toEntity());
		}
		dc.setProveedores(prov);
		List<Entity_StockInsumo> si = new ArrayList<Entity_StockInsumo>();
		for(StockInsumo s : this.getStockInsumo()){
			si.add(s.toEntity());
		}
		dc.setStockInsumos(si);
		return dc;
	}
	

}
